package com.campus.backend.bean.order;

import com.campus.common.bean.common.PageQueryParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 订单查询参数
 *
 * @author ZhaoYuJie
 * @since 2025-01-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "订单查询参数", description = "订单分页查询参数")
public class OrderQueryParam extends PageQueryParam {

    @ApiModelProperty("订单ID")
    private String id;

    @ApiModelProperty("用户ID")
    private Integer userId;

    @ApiModelProperty("顾客电话")
    private String customerPhone;

    @ApiModelProperty("商户ID")
    private Integer merchantId;

    @ApiModelProperty("商户名称")
    private String merchantName;

    @ApiModelProperty("配送员ID")
    private Integer deliveryId;

    @ApiModelProperty("状态：1-待付款，2-待接单，3-进行中，4-已完成，5-已取消")
    private Integer status;

    @ApiModelProperty("商家进度：0-待接单，1-备餐中，2-已出餐")
    private Integer merchantProcess;

    @ApiModelProperty("配送员进度：0-待抢单，1-待取餐，2-配送中，3-已送达")
    private Integer deliveryProcess;

    @ApiModelProperty("配送类型：1-外卖，2-堂食，3-自取")
    private Integer deliveryType;

    @ApiModelProperty("收货人姓名")
    private String receiverName;

    @ApiModelProperty("收货人电话")
    private String receiverPhone;

    @ApiModelProperty("开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    @ApiModelProperty("结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
}